package jwt;

import java.util.Date;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.DefaultJwsHeader;

public class TestJwt {
	public static void main(String[] args) {
		JwtBuilder builder = Jwts.builder();
		DefaultJwsHeader jwtHeader = new DefaultJwsHeader();
		//headers
		jwtHeader.setType("JWT");
		builder.signWith(SignatureAlgorithm.HS256, "secretkey");
		//claims
//		builder.setSubject("userName");
		//放入一些参数 比如 userId 等
		builder.claim("userId", 123);
		
		//在此时间之后token不能被使用   即 设置token有效期
		builder.setExpiration(new Date(System.currentTimeMillis()+100000));
		//在此时间之前token不能被使用
//		builder.setNotBefore(new Date(System.currentTimeMillis()+100000));
		String token = builder.compact();
		System.out.println(token);
		
		
        final Claims claims = Jwts.parser().setSigningKey("secretkey")
                     .parseClaimsJws(token).getBody();
        
        System.out.println(claims.get("userId"));
             
        System.out.println("解密没问题");
	}

}
